package cn.koala.key.firstmaintain.service;

import cn.koala.key.firstmaintain.entity.dto.FirstMaintainCardDeductParamDTO;
import cn.koala.key.firstmaintain.entity.dto.FirstMaintainCardSearchModel;
import cn.koala.key.firstmaintain.entity.dto.FirstMaintainCardTypeModifyDTO;
import cn.koala.key.firstmaintain.entity.vo.FirstMaintainCardSearchParamVO;
import cn.koala.key.firstmaintain.entity.vo.FirstMaintainCardSearchResultVO;
import cn.seed.common.core.Result;
import cn.seed.common.core.ResultList;

import java.util.List;

/**
 * 首保卡服务接口
 *
 * @author liutao
 * @date 2021/1/26
 */
public interface FirstMaintainCardService {
    /**
     * 供管批量收卡
     * @param vinNoList 车架号
     * @param oprNo 操作人
     * @param oprName 操作人姓名
     */
    Result<?> batchReceive(List<String> vinNoList, String oprNo, String oprName);

    /**
     * 批量扣减首保卡次数
     * @param paramList 批量扣减次数
     */
    Result<?> batchDeductCount(List<FirstMaintainCardDeductParamDTO> paramList);

    /**
     * 批量修改首保卡类型
     * @param paramList 批量修改首保卡类型
     */
    Result<?> batchModifyCardType(List<FirstMaintainCardTypeModifyDTO> paramList);

    /**
     * 查询首保卡
     *
     * @param paramVO 查询参数
     * @return 首保卡列表
     */
    Result<ResultList<FirstMaintainCardSearchResultVO>> searchByCondition(FirstMaintainCardSearchParamVO paramVO);

    /**
     * 导出首保卡
     * @param paramVO 查询参数
     * @return 首保卡列表
     */
    List<FirstMaintainCardSearchModel> searchPrint(FirstMaintainCardSearchParamVO paramVO);
}
